perm filename RSL.JHS[UP,DOC]1 blob sn#002795 filedate 1972-10-09 generic text, type T, neo UTF8
	AUTOMATIC SERVICE LEVEL RESERVATION ---
		--- AN INFORMAL INTRODUCTION & EXPLANATION

	In  the  past,  it  has been necessary to sign up for service
level on a sheet posted in the computer room. Now,  reservations  are
kept  within  the  computer  itself,  for  service  level and for III
displays, the user disk pack, plotter, and MTA0.

	If you don't know what service level is,  see the appendix on
pages 4,5,& 6 - being an historical document concerning service level.

	Winning features of this scheme are two: 1.  If you  have  SL
reserved,  you  can  get  it  immediately.   2.    If  reserved SL is
unclaimed,  it  is  available  (until  claimed)  on   a   first-come,
first-served basis.


		HOW TO RESERVE SERVICE LEVEL:

	Give the monitor level command "R  RSL".   This  runs  a  csp
program  called  RSL  which  will  receive  and  sometimes grant your
requests for service  level reservations,  and  will  tell  you  such
information as how much SL is available when.

	RSL will prompt you with an asterisk ("*") when it's ready to
accept commands.   Command  format  is  discussed  in  detail  below.
Commands are RESERVE,CALENDAR,AVAILABLE,DISPLAY,MAINTENANCE,and HELP.

	For  example, to  reserve  15%  sl  at  1400  on  the 31st of
December, any of the following command strings will serve:
	RESERVE 15 SL AT 1400 HOURS ON 31-DEC
	r 15 on 31 decemb at 2 p.m.
	RE 2 PM ON 31 DECEMBER 15
	R 15 14 31 12
	If  you  wish  to change a service level reservation, just do
another reservation for the new desired amount.  Releasing a  service
level reservation may be done by "reserving" 0% SL.

			IMPORTANT!

	When  you  are  through  making reservations, you should exit
from RSL by typing "E" (just like stopgap).  If you exit  instead  by
typing ↑C, then there is a possibility that your reservations may get
"lost". The "E" command causes reservations to be  written  out  onto
the disk.

		HOW TO RESERVE DEVICES:

	The six III displays, the user disk pack, plotter,  and  MTA0
may   also  be  reserved.    RSL  merely  makes  and  retains  device
reservations; unlike service level, enforcement is  left  up  to  the
users.
	To reserve III24, 5% service level, and the user  disk  pack,
type "RESERVE 5 SL III 24 UDP" or "R III4UDP5".
	A device may be unreserved by preceding it with a minus sign:
"R  -III  PLTR  -UDP  MTA"  will  simultaneously reserve MTA0 and the
plotter, and unreserve the udp and any and all III's.
	If  you  don't  care  which  III  you  get, you may say "III"
instead of "III4" or "III23" or etc.

		OTHER COMMANDS AVAILABLE:

	To get a list of your current reservations, type "DISPLAY" or
"displ"  or "di" or "D".   The command string "D XYZ" will get a list
of programmer XYZ's current reservations.

	The "calendar" command will show you which  programmers  have
what  reservations  on a given time and date.  For example, "C FOR 3"
will show you the reservations for the current hour and the following
2 hours also.

	"Available" is a short form of "calendar".  "A 0000 HOURS FOR
24 ON 1-JAN-88 will yield 24 lines of output telling how much service
level  is still available at each time slot on the first day of 1988,
should the system last so long.

	Some people occasionally have a  need  to  do  work  under  a
fictious   programmer  name,  such  as  SYS,  AIL  or  HE.   Fictious
programmer names have no funny money, and thus can't reserve  service
level.   However, reservations made by and in the name of a bone fide
programmer  may  be  "transferred"  to  any  other  programmer  name,
fictious  or otherwise. For example, Dan C. Swinehart can say "TR AIL
FOR 3" to RSL while logged in as DCS, log out, and  then  log  in  as
S,AIL,  at which point he (as programmer "AIL") will get the benefits
from the system of whatever reservations he (as DCS) had made for the
next three hours.

	"Help" or "H" will type for you a summary of  command  string
structure  in  condensed  form, not necessarily comprehensible unless
you know BNF or are refreshing your memory.

	The "MAINTENANCE" or "m" command reserves the  entire  (bare)
machine  for  hardware  or  software purposes.   e.g., "M 4 pm for 2"
will request the machine for maintenance from 4 to 6 pm.
	This  command  can  also  be  used  to  cancel a bare machine
reservation. Just type a minus sign immediately in front of the  date
specification, e.g.  "M -25 nov 73 for 2".

	Proper use of the "EXIT" commaand can be very important,  and
requires an understanding of it's function.  The data  base  for  all
current  and  future  reservations  is  kept internally in the *-SL-*
program at all times.  Many of the commands you give to RSL  cause  a
change in this data base.  However, these changes are not necessarily
made in the "permanent" data base, which  lives  on  the  disk.   The
"EXIT"  (or  "E") command causes the internal data base to be written
out on the disk, and it is only this copy  which can  survive  system
crashes or system maintenance.  IT IS POSSIBLE TO "LOSE" RESERVATIONS
by leaving RSL with "↑C" instead of "E".  Use  whichever  method  you
prefer.

		HOW TO OBTAIN SERVICE LEVEL:

	When you log in, the login routine  will  cause  any  service
level you have reserved to be assigned to you.

	The SL command works as before.  The system will give you the
amount  of SL you request, if possible.  If not, it will tell you how
much is available for YOU, this amount being the obvious function  of
your  reservation,  your current SL, and the total current unassigned
SL.

	It is not necessary to request your SL within  5  minutes  of
the  hour.  A reservation is valid for the entire hour, won't go away
at any time within the hour, and guarantees that at any  time  within
that hour a SL command requesting that amount of SL, or less, will be
granted.

	It is possible to obtain service level with  the  SL  command
which  you  have  not  reserved.  Catch-22:  some or all of it may go
away without notice if someone  with  a  reservation  requests  "his"
service level.

		WHAMS AND BAMS

	Different users are allowed to reserve different  amounts  of
service  level.  Basically, every user has an account (possibly null)
of  two  kinds  of  "funny  money",  called  whams  and  bams.    The
administrative  framework of funny money is described in the appendix
on pages 4,5, & 6, and is adhered to by the automatic  service  level
reservation system.

	The amount of funny money in a users account is found in  the
phone  directory.   Changes  to the phone directory are reflected are
observed by the service level system.

		RSL COMMAND SYNTAX:
			--- in bnf somewhat

	METASEMANTICS:

	Anything in curly brackets is optional.
	A slash ("/") between two bnf terms represents  one  or  more
delimiters (space,slash,apostrophe,minus sign,comma).
	A double arrow ("↔") between two bnf terms indicates that the
order  of the terms is not always important.  If the syntax of a term
distinguishes it, then it may appear anywhere in  the  command  line,
provided  no  nondistinguishable term which might be confused with it
precedes it.  (It's simpler than it sounds)

	SYNTAX:

<RSL command> ≡ <Rcom>|<Acom>|<Ccom>|<Dcom>|<Tcom>|<Hcom>|<Mcom>|<Ecom>
<Rcom> ≡ RESERVE {<sl-arg>}↔{<hr-arg>}↔{date-arg>}↔{<for-arg>}↔{<device>}
<Acom> ≡ AVAILABLE {<hr-arg>}↔{date-arg>}↔{<for-arg>}
<Ccom> ≡ CALENDAR  {<hr-arg>}↔{date-arg>}↔{<for-arg>}
<Dcom> ≡ DISPLAY {<programmer initials>}
<Tcom> ≡ TRANSFER <programmer initials> {<hr-arg>}↔{<date-arg>}↔{<for-arg>}
<Hcom> ≡ HELP
<Mcom> ≡ MAINTENANCE {-}{<hr-arg>}↔{<date-arg>}↔{<for-arg>}
<Ecom> ≡ EXIT
<sl-arg> ≡ <integer> | <integer> SL
<hr-arg> ≡ <military hour> | <civilian hour>
<civilian hour> ≡ [ 1 | 2 | ... | 12 ] { AM | A.M. | PM | P.M.}
<military hour> ≡ [0 | 1 | ... | 23]{00} {HRS|HOURS}
<date-arg> ≡ <people day> | <day-arg>/<month-arg>{/<year-arg>}
<people day> ≡ SUNDAY | MONDAY | ... | SATURDAY
<day-arg> ≡ 0 | 1 | 2 | ... | 31
<month-arg> ≡ <people month> | <computer month>
<people month> ≡ JANUARY | FEBRUARY | ... | DECEMBER
<computer month> ≡ 1 | 2 | ... | 12
<year arg> ≡ {19}71 | {19}72 | ... | {19}99 | 2000 | 2001 | ... |2099
<for-arg> ≡ <integer> | FOR <integer>
<device>  ≡ MTA | PLTR | UDP | <iii>
<iii> ≡ III | III0 | III1 | ... | III5 | III20 | III21 | ... | III25

	SEMANTICS:

	Names of commands, weekdays and months may be abbreviated  by
truncation, and may be capitalized or not.   Device names may  not be
abbreviated.
	The for term (e.g., FOR 3) specifies a consecutive  number of
hours, starting with the hour & date specified.
	When the syntax of a command does not allow  a  left-to-right
scanner  to  distinguish  terms,  then  the  ambiguous  terms will be
assumed to be in the order listed in the syntax.
	If a term is missing from an argument, RSL will supply one it
deems appropriate.
	A date specified by giving the name of a day, is the earliest
future or present date falling on the given weekday. (Notice that  at
0830  on Wednesday, "wednesday" specifies either the current date, or
the date one week hence, depending on the hour specification.)

	SUBSEMANTICS:

	The  following funny mechanism exists:  RSL always has a time
& date "in mind", called the default date.  The default time  &  date
is  usually  the  last  time & date you typed.  If a command does not
specify a time (date), then the default time (date) will be used.
	Commands  terminated  with a line feed (altmode) will advance
(backup) the default time & date.  The amount of advance (backup)  is
1  hour,  1  day,  1 week, 1 month depending as plain, control, meta,
control & meta were used with the line feed (altmode).

	APPENDIX:   being an historical MEMORANDUM:

                                                         17 June 1970
To:      Artificial Intelligence Laboratory Users

From:    L. Earnest

Subject: Another Computer Reservation Procedure

The timesharing monitor has now been modified so that the  amount  of
processing  you  get  decreases linearly with your core size. The new
rules are given in the attachment.

The timesharing scheduler gives different priorities to each of three
user classes:
    1)  interactive users
    2)  reserved users
    3)  scavengers
The first goal of the scheduler is to provide good service to  anyone
doing interactive work such as editing.  The System decides whether a
given job is currently interactive on the  basis  of  keyboard  input
activity.

You  get  to  be  a reserved user by reserving a service level on the
signup sheet and telling the scheduler about  it.   For  example,  to
request a service level of 20%, type
    .SL 20
Whenever you are running, the scheduler will then attempt to give you
a processing level (% of CPU time) given by
    PL = SL - C/5
where SL is the service level and C is your current core size (in K).
The system will not let more than a certain total service level to be
allocated in this way (currently 80%).

If  you are neither interactive nor reserved, you get some of what is
left, which may be pitifully little.  The system is supposedly rigged
so  that  reserved  users  always  get  service  at  least as good as
scavengers.   Note that if you are editing and execute a long-running
string  search,  the  system  may decide you are a scavenger and take
forever to finish.

To keep things honest, WHO now shows service  level  declarations  at
the  right  end  of  the job line.   Users are encouraged to publicly
denounce outlaws and urge them to reform.  In case  moral  persuasion
doesn't work, let me know and I will employ immoral persuasion.

WHO  will  shortly be modified to display the actual processing level
being provided to your program, so that you may have a more  concrete
basis  for  complaint.   Hopefully, the reservation system will be in
the computer before long.  As soon as the Data Disc displays  are  in
operation, displays will no longer be rationed.

             Stanford Artificial Intelligence Laboratory


Effective date:  22 June 1970

Each  authorized  user has an allowance of two kinds of money, called
"whams" and "bams".   Whams may be  used  only  to  purchase  display
terminal  time,  while  bams  are  good  only  for  CPU service.  The
allocations are as follows.
			Whams	  Bams
    Half time user	  4	   100
    Full time user	  8	   200
    Panic User		 16	   400
You are "half time" or "full time" in accordance with the portion  of
your time devoted to A.I. activities.  In an emergency situation, you
may be given a short term appointment as a Panic user.

Your "money" allocations are actually revolving funds in that if  you
reserve  machine time and use it, you may then re-use the reservation
money.  In effect, then, there is a limitation on how  much  you  can
reserve  at  a  given time.  There is no conversion between whams and
bams, nor can funds be transferred between persons.

The display costs W (whams/hour) vary with time of day  as  given  in
the  table below. The price P (bams/hour) of buying any given service
level SL (in percent) is
        P = SL*B*T
where B is the rate (bams/hour) given in the same table and T is  the
number of hours.
       Time           0000-0900   0900-1300   1300-1800   1800-2400
	                W & B	    W & B	W & B	    W & B
  Monday-Friday	          1	      2	          3	      2
  Sat., Sun., holidays    1	      1	          2           1
You  may reserve a display without a service level or vice versa, but
reservations may be made only for integral  hours  beginning  on  the
hour.   Other  peripheral  devices  may  be reserved only if you have
reserved a service level.  Service levels may be  purchased  only  in
multiples of 5%. The attached table gives maximum service levels that
can be purchased in any given time zone.

III display reservations may be made  for  a  particular  display  by
putting  a  parenthetical  digit (0-5) after your initials.  Initials
without a digit are interpreted as "don't care  which".  In  case  of
partial equipment failure, signups on the left side of the sheet have
priority.

All entries must be in pencil.  Entries in ink are void and should be
ignored.

You may purchase unreserved or unclaimed resources (see 5 minute rule
in SAILON-37) at any time if you have enough money.   If  someone  is
logged  in  on  a display that is reserved but unclaimed, however, he
has first priority to buy that hour.  You should enter your  initials
on the reservation sheet to record ownership.

                       Maximum Service Levels


To find the maximum service level that can be reserved during a given
period,  first  look  up  the  price  B (1, 2, or 3 bams/hour), given
above, then look down the corresponding column below to the number of
hours  you  wish to run.  The maximum service level you can afford is
given under your user  class.   For  example,  in  the  afternoon  (3
bams/hour),  a  fulltime user who plans to run 3 hours may purchase a
service level of 20%.

		Price B (bams/hour)          User Class
		  3      2      1        halftime  fulltime
		--------------------   --------------------
		              1 hr         80%       80%
		       1 hr   2            50        80
		1 hr          3            30        65
		--------------------   --------------------
		       2      4            25*       50
		              5            20        40
		2      3      6            15        30
  Duration	--------------------   --------------------
		              7            10        25
		       4      8            10        25*
		3      5      9-10         10        20
		--------------------   --------------------
		4      6      11-13         5        15
		5-6    7-10   14-20         5        10
		7-13   11-20  21-40         0         5


* Indicates the level that can be purchased with  concurrent  display
service.